GenK - Bên trong nỗ lực của Apple nhằm đưa ứng dụng iOS sang máy Mac
Tại hội nghị WWDC 2018 vừa qua, Apple cho biết, họ sẽ cho phép các nhà phát triển chuyển ứng dụng iOS của mình sang máy Mac trong năm tới. Bản thân Apple cũng đang bắt đầu quá trình này khi đưa các ứng dụng trên iOS như Home, Stocks, News và Voice Memo sang MacOS 10.14 Mojave.
Dự án này được cho là có mật danh Marzipan, vẫn đang trong giai đoạn đầu và Apple chưa có kế hoạch đưa nó tới các nhà phát triển cho đến năm 2019. Đừng hiểu nhầm Apple, đây sẽ không phải là dấu chấm hết cho các ứng dụng MacOS, thay vào đó, công ty muốn giúp các nhà phát triển ứng dụng di động có thể dễ dàng đưa ứng dụng của mình lên MacOS. Điều này sẽ giúp các nhà phát triển không phải lựa chọn giữa việc tạo ra ứng dụng cho iOS hay MacOS nữa.
Khác biệt giữa ứng dụng iOS và ứng dụng MacOS
Để hiểu được giải pháp của Apple đối với vấn đề này, trước tiên hãy bắt đầu từ sự khác nhau giữa ứng dụng iOS và MacOS. Thoạt nhìn cả hai có nhiều điểm tương tự nhau: chúng sử dụng chung các ngôn ngữ lập trình, như Objective-C hay Swift của riêng Apple, và nhiều hàm API bên dưới các ứng dụng này cũng tương tự nhau.
Nhưng điểm khác biệt lớn nhất giữa hai nền tảng này chính là giao diện người dùng. Các ứng dụng MacOS hoạt động với chuột và bàn phím, trong khi ứng dụng iOS dùng màn hình cảm ứng. Do vậy, việc chuyển ứng dụng iPhone sang máy Mac theo cách đơn giản như Google làm với Android và ChromeOS không phải là điều Apple muốn.
Giải pháp của Apple là đưa cho các nhà phát triển công cụ họ cần để mang lại cho ứng dụng iOS giao diện người dùng tương tự như MacOS.
Cho đến nay, nhiều ứng dụng MacOS dựa trên một nền tảng phần mềm có tên AppKit, để mang lại các yếu tố giao diện người dùng cho ứng dụng. AppKit đã xuất hiện từ những năm 1980, kế thừa từ nền tảng NeXTSTEP Application Kit. Trong khi đó, iOS lại sử dụng một nền tảng hoàn toàn khác để hiển thị ứng dụng, có tên gọi UIKit, được thiết kế cho màn hình nhỏ hơn và có các thao tác điều khiển cảm ứng giới hạn hơn.
Với Marzipan, Apple tham vọng đưa nền tảng UIKit vào máy Mac, nghĩa là về lý thuyết, các nhà phát triển có thể tạo ra một phiên bản chạy trên máy Mac cho ứng dụng của họ, mà không phải viết lại toàn bộ code cho giao diện người dùng AppKit. (Thêm vào đó, bằng cách bổ sung UIKit vào MacOS như một phần native của nền tảng, các ứng dụng sẽ chạy một cách tự nhiên, thay vì giống như qua một bộ mô phỏng).
Đã có những minh họa cho việc port ứng dụng trong hệ sinh thái riêng của Apple – các ứng dụng iPad và tvOS cho Apple TV có thể hoạt động cùng nhau. Chúng được xây dựng bằng UIKit và chia sẻ cùng code như phiên bản iPhone. Nhưng với Marzipan, các nhà phát triển có thể chuyển ứng dụng từ nền tảng này sang nền tảng khác dễ dàng hơn nữa, khi các ứng dụng được chuyển sang nền tảng mới sẽ có giao diện, thiết kế và layout riêng phù hợp với desktop.
Dù sao đi nữa, đó vẫn chỉ là lý thuyết. Trên thực tế, một số ứng dụng mới của Apple trên MacOS Mojave đã mang lại cảm giác giống như ứng dụng iPad. Ví dụ dễ thấy nhất cho điều này là ứng dụng Home để điều khiển các thiết bị thông minh trong nhà trên iOS. Khi được port sang MacOS, nó mang theo các nút bấm khổng lồ trên màn hình, nhưng bạn không thể chạm được vào nó khi không có màn hình cảm ứng. Bạn còn có thể điều chỉnh kích thước cửa sổ nhưng thao tác sẽ hơi chậm một chút.
Dù sao đi nữa một vài ứng dụng mà Apple mới phát hành chỉ là cái nhìn cơ bản ban đầu, và Marzipan còn ít nhất một năm nữa mới đến tay các nhà phát triển. Chắc chắn đến lúc đó, Apple sẽ phát triển các nền tảng và các API để làm những ứng dụng này trở nên native hơn với MacOS.
Như nhà phát triển Steve Troughton Smith chỉ ra, phiên bản beta của Mojave đã cho thấy Apple đang bắt đầu làm vậy: nó bổ sung thêm các yếu tố giao diện vào UIKit, như thanh sidebar kinh điển của ứng dụng MacOS. Điều đó cho phép các nhà phát triển làm ứng dụng iOS trở nên gần gũi hơn với MacOS.
Không phải đoạn kết cho ứng dụng của MacOS
Nếu ai đó cho rằng, việc port các ứng dụng iOS sang sẽ là lời kết cho ứng dụng MacOS truyền thống, đó có lẽ là một sai lầm. Các ứng dụng được port sang sẽ không tái tạo lại được trải nghiệm 1:1 như ứng dụng trên AppKit. Ứng dụng UIKit vẫn là ứng dụng UIKit, ngay cả khi nó được port sang MacOS. Hãy nhìn vào giao diện đặc trưng iOS của ứng dụng Home khi port sang MacOS.
Cho dù nó có thể được Apple tinh chỉnh khi hoàn thiện, có lẽ vẫn có chỗ cho những nhà phát triển của các ứng dụng MacOS truyền thống khi họ muốn hỗ trợ chúng.
Nhưng các ứng dụng UIKit này còn một vai trò khác đối với MacOS – thay thế cho các ứng dụng Electron dạng web-app (ứng dụng di động) mới nổi lên trong những năm gần đây, như Slack hay Simplenote, được port sang dựa trên UIKit cho iOS. Nhiều ứng dụng trên Mac hiện tại là các ứng dụng Electron, và nó có thể là mối đe dọa cho MacOS.
Nếu mọi người quen với việc sử dụng các web-app chỉ được chỉnh sửa đôi chút, điều gì sẽ ngăn họ không chuyển sang dùng một chiếc Chromebook hay Windows? Chắc hẳn là không nhiều.
Hơn nữa, các ứng dụng được port sang bằng Marzipan này có thể đem lại trải nghiệm tốt hơn các ứng dụng Electron. Rõ ràng nhất là Slack, một quái vật ngốn RAM trên máy Mac nhưng lại chạy mượt mà, trơn tru trên iPad.
Tầm nhìn cho tương lai
Nếu các nhà phát triển có thể tận dụng được tiềm năng mà Apple đang hứa hẹn ở đây, nếu điều đó có nghĩa là mang lại một làn sóng các ứng dụng native mới cho máy Mac, sẽ thay đổi cách chúng ta tương tác với máy tính, liệu điều gì sẽ xảy ra tiếp theo.
Có hai hướng dự báo khả thi nhất cho điều này:
Đầu tiên: Một trong những điểm trừ trên iPad Pro là không có đủ các ứng dụng “Pro” như những gì đang có trên máy Mac. Dù vậy, chiếc iPad Pro vẫn có một bộ xử lý đầy sức mạnh và có nhiều ưu thế khác tích hợp trong hệ điều hành iOS. Do đó, nếu các nhà phát triển có thói quen tạo ra các ứng dụng mạnh mẽ cho máy Mac với các công cụ mới, họ có thể tiếp tục công việc của mình và làm chúng hoạt động được trên iPad Pro.
Thứ hai: các ứng dụng iOS chạy trên bộ xử lý ARM, ứng dụng MacOS chạy trên bộ xử lý của Intel. Nếu Apple có thể làm cho các ứng dụng Marzipan kia chạy ổn định trên chip Intel, chúng ta thấy tương lai về một chiếc máy Mac chạy trên chip ARM sẽ trở nên rõ ràng hơn. Sự thành công của một thiết bị như vậy sẽ phụ thuộc nhiều vào hàng loạt ứng dụng chạy tốt trên nó.
Tham khảo The Verge